package moyenDeTransport;

import java.io.*;

/**
 * Cette classe fait partie de l'application d'un système de réservation de
 * moyens de transport en commun.
 * 
 * Cette classe permet de stocker un véhicule. Un véhicule est constitué d'un
 * String indiquant son nom, de sa capacité et de son identifiant.
 * 
@author Fauconnier Simon  Bourdin Théo Jimenez Matthieu Shimabukuro Emmanuel
 * @version 2011.12.04
 */

public class Vehicule implements Serializable {
    String vehicule;
    int identifiant;
    int premiereClasse;
    int secondeClasse;
    int classeEco;

    /**
     * Créé une instance de véhicule
     * 
     * @param vehicule
     *            nom du véhicule
     * @param capacite
     *            capacité du véhicule
     * @param identifiant
     *            identifiant du véhicule
     */
    public Vehicule(String vehicule, int premiereClasse, int secondeClasse,
            int classeEco, int identifiant) {
        this.vehicule = vehicule;
        this.premiereClasse = premiereClasse;
        this.secondeClasse = secondeClasse;
        this.classeEco = classeEco;
        this.identifiant = identifiant;
    }

    public int getPremiereClasse() {
        return premiereClasse;
    }

    public void setPremiereClasse(int premiereClasse) {
        this.premiereClasse = premiereClasse;
    }

    public int getSecondeClasse() {
        return secondeClasse;
    }

    public void setSecondeClasse(int secondeClasse) {
        this.secondeClasse = secondeClasse;
    }

    public int getClasseEco() {
        return classeEco;
    }

    public void setClasseEco(int classeEco) {
        this.classeEco = classeEco;
    }

    /**
     * @return nom du véhicule
     */
    public String getVehicule() {
        return vehicule;
    }

    /**
     * @return identifiant du véhicule
     */
    public int getIdentifiant() {
        return identifiant;
    }

    /**
     * @param vehicule
     *            nom du véhicule
     */
    public void setVehicule(String vehicule) {
        this.vehicule = vehicule;
    }

    /**
     * @param identifiant
     *            identifiant du véhicule
     */
    public void setIdentifiant(int identifiant) {
        this.identifiant = identifiant;
    }

    @Override
    public String toString() {
        return new StringBuffer().append(vehicule).append(" (id=")
                .append(identifiant).append(") qui a une capacité de ")
                .append(premiereClasse).append(" en premiere classe, ")
                .append(secondeClasse).append(" en seconde classe et ")
                .append(classeEco).append(" en classe eco.").toString();
    }

    /**
     * retourner une ligne de texte contenant les informations utiles pour
     * reconstituer un véhicule, séparé par des '#'
     * 
     * @return la ligne de texte terminée par un '\n'
     */
    public String print() {
        return new StringBuffer().append(vehicule).append("#")
                .append(premiereClasse).append("#").append(secondeClasse)
                .append("#").append(classeEco).append("#").append(identifiant)
                .append("#").append("\n").toString();
    }
}
